【go技巧】结构体类型的切片按照从小到大排序

您所在的位置:网站首页 go 切片 数组 【go技巧】结构体类型的切片按照从小到大排序

【go技巧】结构体类型的切片按照从小到大排序

2023-06-13 23:08| 来源: 网络整理| 查看: 265

目录

结构体类型的切片按照从小到大排序

结构体类型的切片按照从小到大排序

可以使用 Go 语言中的 sort.Slice() 函数对结构体类型的切片进行排序。该函数接受一个切片和一个 less 函数作为参数,less 函数用于比较切片中的元素并按照指定顺序排序。

下面是一个示例代码,演示了如何使用 sort.Slice() 对结构体类型的切片按照从小到大排序:

package main import ( "fmt" "sort" ) type Person struct { Name string Age int Gender string } func main() { persons := []Person{ {Name: "Alice", Age: 25, Gender: "Female"}, {Name: "Bob", Age: 30, Gender: "Male"}, {Name: "Charlie", Age: 20, Gender: "Male"}, {Name: "David", Age: 35, Gender: "Male"}, {Name: "Eva", Age: 28, Gender: "Female"}, } fmt.Println("Before sorting:", persons) // 使用 sort.Slice() 对结构体类型的切片进行排序 sort.Slice(persons, func(i, j int) bool { return persons[i].Age < persons[j].Age }) fmt.Println("After sorting:", persons) }

在这个示例代码中,我们首先定义了一个包含多个 Person 结构体的切片 persons。然后,在输出原始切片的值后,我们调用 sort.Slice() 函数对其进行从小到大的排序。在 less 函数中,我们定义了比较函数,按照 Age 字段进行比较,因此最终切片将按照从小到大的年龄顺序排列。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3